package com.chaochis.wind.user.service;

import com.chaochis.wind.common_exceptions.has_delete_exception.UserHasTombstoneException;
import com.chaochis.wind.enums.AccountType;
import com.chaochis.wind.user.vo.WindAccount;
import com.chaochis.wind.user.vo.WindUser;

import java.util.List;

public interface WindAccountService {
  /**
   * 获取所有的登录账户列表
   * @param windAccount 要查询的参数
   * @return 返回查询到的账户列表
   */
  List<WindAccount> getWindAccountList(WindAccount windAccount);

  /**
   * 通过用户名获取账号
   * @param accountName 用户名
   * @param accountType 账号类型
   * @return 返回找到的账户
   */
  WindAccount getWindAccountByAccountName(String accountName, AccountType accountType);

  /**
   * 通过id获取单个登录账号
   * @param accountId 账户id
   * @return 返回查询到的登录账号
   */
  WindAccount getWindAccountDetailByAccountId(String accountId);

  /**
   * 获取某个账号id绑定的wind用户信息
   * @param accountId 账号id
   * @return 绑定的wind用户信息
   */
  WindUser getBoundWindUser(String accountId);

  /**
   * 添加一个登录账户
   * @param windAccount 要添加的登录账户
   */
  void addWindAccount(WindAccount windAccount);

  /**
   * 更新某个登录账户的信息
   * @param windAccount 要更新的账户信息
   */
  void updateWindAccount(WindAccount windAccount);

  /**
   * 物理删除一个登录账户
   * @param accountId 要物理删除的登录账户的id
   */
  void deleteWindAccount(String accountId);
}
